function f = ucptrue(name,t,step,M,N)
switch name
    case 'DICTP1'
        x1 = [0:step:1]';
        y1 = t * exp(-x1);
        f = [x1,y1];
    case 'DICTP1.1'
        x1 = [0:step:1]';
        y1 = t * exp(-x1);
        f = [x1,y1];
    case {'DICTP2','DICTP3','DICTP4','DICTP5','DICTP6','DICTP7','DICTP8'}
        x1 = [0:step:1]';
        y1 = t * (1-sqrt(x1));
        f = [x1,y1];
    case {'DICTP2.1'}
        x1 = [0:step:1]';
        y1 = (1-sqrt(x1));
        f = [x1,y1];
    case {'ICF1','ICF2','ICF3','ICF4','ICF5','ICF6','ICF7','ICF8','ICF1.1'}
        x(:,1) = [0:step:1]';
        x(:,2:N) = 1 - 0.9*sin(0.2*pi*t);
        f = zeros(size(x,1),M);
        for i = 1:size(x,1)
            f(i,:) = fun(name,x(i,:),M,N,t);
        end
end
end

